#include "DeltaGlider.h"
#include "at1000.msh.resource.h"



// --------------------------------------------------------------
// Define animation sequences for moving parts
// --------------------------------------------------------------

void DeltaGlider::DefineAnimations ()
{
//------------------------------------------------------------------------------------- nose gear system ------------------------------------------------------
//nose gear bay doors back need to open and then close when the gear is out	
// -----------------------------------------------------------------------------------------------start nose back doors--------------------------------------
//start open
static UINT gear_door_front_01_left_openGrp[1] = {GRP_gear_door_front_01_left};
	static MGROUP_ROTATE gear_door_front_01_left_open (0, gear_door_front_01_left_openGrp, 1,
		_V(-0.939316, -2.123047, 9.082581), _V(0,0,1), (float)(-95*RAD));

static UINT gear_door_front_01_right_openGrp[1] = {GRP_gear_door_front_01_right};
	static MGROUP_ROTATE gear_door_front_01_right_open (0, gear_door_front_01_right_openGrp, 1,
		_V(0.939316, -2.123047, 9.082581), _V(0,0,1), (float)(95*RAD));
//end open 
//start close
static UINT gear_door_front_01_leftGrp[1] = {GRP_gear_door_front_01_left};
	static MGROUP_ROTATE gear_door_front_01_left_close (0, gear_door_front_01_leftGrp, 1,
		_V(-0.939316, -2.123047, 9.082581), _V(0,0,1), (float)(95*RAD));

static UINT gear_door_front_01_right_closeGrp[1] = {GRP_gear_door_front_01_right};
	static MGROUP_ROTATE gear_door_front_01_right_close (0, gear_door_front_01_right_closeGrp, 1,
		_V(0.939316, -2.123047, 9.082581), _V(0,0,1), (float)(-95*RAD));
//end close	
// -----------------------------------------------------------------------------------------------end nose back doors--------------------------------------	
//------------------------------------------------------------------------------start nose front doors ------------------------------------------	
static UINT gear_door_front_02_leftGrp[1] = {GRP_gear_door_front_02_left};
	static MGROUP_ROTATE gear_door_front_02_left (0, gear_door_front_02_leftGrp, 1,
		_V(-0.939285, -1.986526, 12.004639), _V(0,0,1), (float)(-95*RAD));	
	
static UINT gear_door_front_02_rightGrp[1] = {GRP_gear_door_front_02_right};
	static MGROUP_ROTATE gear_door_front_02_right (0, gear_door_front_02_rightGrp, 1,
		_V(0.939285, -1.986526, 12.004639), _V(0,0,1), (float)(95*RAD));
//------------------------------------------------------------------------------end nose front doors ------------------------------------------	
//---------------------------------------------------------------------------------------------------start nose gear --------------------------	
	static UINT nose_oleo_cylinderGrp[1] = {GRP_nose_oleo_cylinder};
	static MGROUP_ROTATE nose_oleo_cylinder (0, nose_oleo_cylinderGrp, 1,
		_V(0.0, -1.633564, 12.600554), _V(1,0,0), (float)(-90*RAD));

	static UINT nose_oleo_pistonGrp[1] = {GRP_nose_oleo_piston};
	m_nose_oleo_piston = new MGROUP_TRANSLATE  (0, nose_oleo_pistonGrp, 1,
		_V(0,0,0)  );

	static UINT nose_axleGrp[1] = {GRP_nose_axle};
	m_nose_axle = new MGROUP_TRANSLATE (0, nose_axleGrp, 1,
		 _V(0,0,0));
	
	static UINT nose_axle_pistonGrp[1] = {GRP_nose_axle_piston};
	m_nose_axle_piston = new MGROUP_TRANSLATE  (0, nose_axle_pistonGrp, 1,
	     _V(0,0,0)); 
	
	static UINT nose_axle_cylinderGrp[1] = {GRP_nose_axle_cylinder};
	m_nose_axle_cylinder = new MGROUP_TRANSLATE  (0, nose_axle_cylinderGrp, 1,
		_V(0,0,0)  );

    static UINT nose_gear_wheelsGrp[2] = {GRP_nose_gear_wheel_right,GRP_nose_gear_wheel_left}; // bj I am not sure how to rotate the wheels on the ground
	m_nose_gear_wheels = new MGROUP_ROTATE  (0, nose_gear_wheelsGrp, 2,
		_V(-0.809051, -1.146715, 9.546688), _V(1,0,0), (float)(-90*RAD));//_V(-0.809051, -1.146715, 9.546688), _V(1,0,0), (float)(-90*RAD));
//---------------------------------------------------------------------------------------------------end nose gear system --------------------------	

// ---------------- start rear gear right systems ---------------------------------------------------------------------------------------------------------
//--start rear gear doors right------------------------------------	

static UINT gear_door_rear_01_rightGrp[1] = {GRP_gear_door_rear_01_right};
	static MGROUP_ROTATE gear_door_rear_01_right (0, gear_door_rear_01_rightGrp, 1,
		_V(5.539795, -2.043137, -7.426575), _V(0,0,1), (float)(110*RAD));	

static UINT gear_door_rear_02_rightGrp[1] = {GRP_gear_door_rear_02_right};
	m_gear_door_rear_02_right = new MGROUP_ROTATE  (0, gear_door_rear_02_rightGrp, 1,
		_V(4.340271, -2.014572, -7.423889), _V(0,0,1), (float)(-170*RAD));	

static UINT gear_door_rear_03_right_openGrp[1] = {GRP_gear_door_rear_03_right};
	static MGROUP_ROTATE gear_door_rear_03_right_open (0, gear_door_rear_03_right_openGrp, 1,
		_V(1.546738, -2.740997, -3.986176), _V(0,0,1), (float)(-120*RAD));		
	

static UINT gear_door_rear_03_right_closeGrp[1] = {GRP_gear_door_rear_03_right};
	static MGROUP_ROTATE gear_door_rear_03_right_close (0, gear_door_rear_03_right_closeGrp, 1,
		_V(1.546738, -2.740997, -3.986176), _V(0,0,1), (float)(120*RAD));		
//--end rear gear doors right------------------------------------	

//--start rear gear doors left------------------------------------	

static UINT gear_door_rear_01_leftGrp[1] = {GRP_gear_door_rear_01_left};
	static MGROUP_ROTATE gear_door_rear_01_left (0, gear_door_rear_01_leftGrp, 1,
		_V(-5.539795, -2.043137, -7.426575), _V(0,0,1), (float)(-110*RAD));	

static UINT gear_door_rear_02_leftGrp[1] = {GRP_gear_door_rear_02_left};
	m_gear_door_rear_02_left = new MGROUP_ROTATE  (0, gear_door_rear_02_leftGrp, 1,
		_V(-4.340271, -2.014572, -7.423889), _V(0,0,1), (float)(170*RAD));	

static UINT gear_door_rear_03_left_openGrp[1] = {GRP_gear_door_rear_03_left};
	static MGROUP_ROTATE gear_door_rear_03_left_open (0, gear_door_rear_03_left_openGrp, 1,
		_V(-1.546738, -2.740997, -3.986176), _V(0,0,1), (float)(120*RAD));		
	

static UINT gear_door_rear_03_left_closeGrp[1] = {GRP_gear_door_rear_03_left};
	static MGROUP_ROTATE gear_door_rear_03_left_close (0, gear_door_rear_03_left_closeGrp, 1,
		_V(-1.546738, -2.740997, -3.986176), _V(0,0,1), (float)(-120*RAD));		
//--end rear gear doors left------------------------------------

//---------------------------------------------------------------------------------------------------------right rear gear start ---------------------------------------

	static UINT gear_main_oleo_cylinder_rightGrp[1] = {GRP_gear_main_oleo_cylinder_right_side};
	static MGROUP_ROTATE gear_main_oleo_cylinder_right (0, gear_main_oleo_cylinder_rightGrp, 1,
		_V(5.083166, -1.649372, -5.640901), _V(0,0,1), (float)(90*RAD));  


    static UINT oleo_piston_right_sideGrp[1] = {GRP_oleo_piston_right_side};
	m_oleo_piston_right_side = new MGROUP_TRANSLATE (0, oleo_piston_right_sideGrp, 1,
		_V(0,0,0)  );

    static UINT axle_right_sideGrp[1] = {GRP_axle_right_side};
	m_axle_right_side = new MGROUP_ROTATE  (0, axle_right_sideGrp, 1,
	     _V(0,0,0), _V(1,0,0), (float)(0*RAD)); 

static UINT axle_piston_rightGrp[1] = {GRP_axle_piston_right_side};
	m_axle_piston_right = new MGROUP_ROTATE  (0, axle_piston_rightGrp, 1,
	     _V(0,0,0), _V(1,0,0), (float)(0*RAD));

static UINT axle_cylinder_right_sideGrp[1] = {GRP_axle_cylinder_right_side};
	static MGROUP_TRANSLATE axle_cylinder_right_side (0, axle_cylinder_right_sideGrp, 1,
		_V(0,0,0)  );

	static UINT wheel_right_rear_right_sideGrp[1] = {GRP_wheel_right_rear_right_side};              //warning ratae point is wrong for wheels
	m_wheel_right_rear_right_side = new MGROUP_ROTATE  (0, wheel_right_rear_right_sideGrp, 1,
	     _V(2.056168, -2.360361, -6.266666), _V(0,1,0), (float)(360*RAD)); 

   static UINT wheel_right_front_right_sideGrp[1] = {GRP_wheel_right_front_right_side};
	m_wheel_right_front_right_side = new MGROUP_ROTATE  (0, wheel_right_front_right_sideGrp, 1,
	     _V(2.04631, -2.364847, -5.014957), _V(0,1,0), (float)(360*RAD)); 

static UINT wheel_left_rear_right_sideGrp[1] = {GRP_wheel_left_rear_right_side};
	m_wheel_left_rear_right_side = new MGROUP_ROTATE  (0, wheel_left_rear_right_sideGrp, 1,
	     _V(2.056168, -2.360361, -6.266666), _V(0,1,0), (float)(360*RAD)); 

   static UINT wheel_left_front_right_sideGrp[1] = {GRP_wheel_left_front_right_side};
	m_wheel_left_front_right_side = new MGROUP_ROTATE  (0, wheel_left_front_right_sideGrp, 1,
	     _V(2.04631, -2.364847, -5.014957), _V(0,1,0), (float)(360*RAD)); 

//---------------------------------------------------------------------------------------------------------right rear gear end ---------------------------------------

//---------------------------------------------------------------------------------------------------------left rear gear start ---------------------------------------
    static UINT gear_main_oleo_cylinder_leftGrp[1] = {GRP_gear_main_oleo_cylinder_left_side};
	static MGROUP_ROTATE gear_main_oleo_cylinder_left (0, gear_main_oleo_cylinder_leftGrp, 1,
		_V(-5.083166, -1.649372, -5.640901), _V(0,0,1), (float)(-90*RAD));  


    static UINT oleo_piston_left_sideGrp[1] = {GRP_oleo_piston_left_side};
	m_oleo_piston_left_side = new MGROUP_TRANSLATE (0, oleo_piston_left_sideGrp, 1,
		_V(0,0,0)  );

    static UINT axle_left_sideGrp[1] = {GRP_axle_left_side};
	m_axle_left_side = new MGROUP_ROTATE  (0, axle_left_sideGrp, 1,
	     _V(0,0,0), _V(1,0,0), (float)(0*RAD)); 

static UINT axle_piston_leftGrp[1] = {GRP_axle_piston_left_side};
	m_axle_piston_left = new MGROUP_ROTATE  (0, axle_piston_leftGrp, 1,
	     _V(0,0,0), _V(1,0,0), (float)(0*RAD));

static UINT axle_cylinder_left_sideGrp[1] = {GRP_axle_cylinder_left_side};
	static MGROUP_TRANSLATE axle_cylinder_left_side (0, axle_cylinder_left_sideGrp, 1,
		_V(0,0,0)  );
	

	static UINT wheel_right_rear_left_sideGrp[1] = {GRP_wheel_right_rear_left_side};                 //warning ratae point is wrong for wheels
	m_wheel_right_rear_left_side = new MGROUP_ROTATE  (0, wheel_right_rear_left_sideGrp, 1,
	     _V(-2.056168, -2.360367, -6.266663), _V(0,1,0), (float)(360*RAD)); 

   static UINT wheel_right_front_left_sideGrp[1] = {GRP_wheel_right_front_left_side};
	m_wheel_right_front_left_side = new MGROUP_ROTATE  (0, wheel_right_front_left_sideGrp, 1,
	     _V(-2.04631, -2.364853, -5.014954), _V(0,1,0), (float)(360*RAD)); 

static UINT wheel_left_rear_left_sideGrp[1] = {GRP_wheel_left_rear_left_side};
	m_wheel_left_rear_left_side = new MGROUP_ROTATE  (0, wheel_left_rear_left_sideGrp, 1,
	     _V(-2.056168, -2.360367, -6.266663), _V(0,1,0), (float)(360*RAD)); 

   static UINT wheel_left_front_left_sideGrp[1] = {GRP_wheel_left_front_left_side};
	m_wheel_left_front_left_side = new MGROUP_ROTATE  (0, wheel_left_front_left_sideGrp, 1,
	     _V(-2.04631, -2.364853, -5.014954), _V(0,1,0), (float)(360*RAD)); 

//---------------------------------------------------------------------------------------------------------left rear gear end ---------------------------------------

// -----------------------------------------------------------------------start nose gear system -----------------------------------------------------
	anim_gear = CreateAnimation (0);
	AddAnimationComponent (anim_gear, 0, 0.2, &gear_door_front_01_left_open);
	AddAnimationComponent (anim_gear, 0, 0.2, &gear_door_front_01_right_open);
	AddAnimationComponent (anim_gear, 0.7, 1, &gear_door_front_01_left_close);
	AddAnimationComponent (anim_gear, 0.7, 1, &gear_door_front_01_right_close);
	AddAnimationComponent (anim_gear, 0, 0.5, &gear_door_front_02_left);
	AddAnimationComponent (anim_gear, 0, 0.5, &gear_door_front_02_right);
   ANIMATIONCOMPONENT_HANDLE nose_oleo_cylinderHandle = AddAnimationComponent (anim_gear, .2, .8, &nose_oleo_cylinder);
   ANIMATIONCOMPONENT_HANDLE nose_oleo_piston_Handle = AddAnimationComponent (anim_gear, 0, .2, m_nose_oleo_piston, nose_oleo_cylinderHandle);
   ANIMATIONCOMPONENT_HANDLE nose_axle_Handle = AddAnimationComponent (anim_gear, 0, 1, m_nose_axle, nose_oleo_piston_Handle);
   ANIMATIONCOMPONENT_HANDLE nose_axle_piston_Handle = AddAnimationComponent (anim_gear, 0, 1, m_nose_axle_piston,nose_axle_Handle);
   AddAnimationComponent (anim_gear, 0, 1, m_nose_axle_cylinder,nose_axle_piston_Handle);
   AddAnimationComponent (anim_gear, 0, 1, m_nose_gear_wheels,nose_axle_Handle);
// -------------------------------------------------------------------------------------------------end nose gear system -----------------------------------------------------

//--start rear gear system right------------------------------------	
   ANIMATIONCOMPONENT_HANDLE gear_door_rear_01_rightHandle = AddAnimationComponent (anim_gear, 0, .2, &gear_door_rear_01_right);
   AddAnimationComponent (anim_gear, 0, 0.2, m_gear_door_rear_02_right,gear_door_rear_01_rightHandle);
   AddAnimationComponent (anim_gear, 0, 0.2, &gear_door_rear_03_right_open);
   AddAnimationComponent (anim_gear, 0.8, 1, &gear_door_rear_03_right_close);
ANIMATIONCOMPONENT_HANDLE gear_main_oleo_cylinder_right_Handle = AddAnimationComponent (anim_gear, .1, .9, &gear_main_oleo_cylinder_right); 
ANIMATIONCOMPONENT_HANDLE oleo_piston_right_side_Handle = AddAnimationComponent (anim_gear, .1, .9, m_oleo_piston_right_side,gear_main_oleo_cylinder_right_Handle);
ANIMATIONCOMPONENT_HANDLE axle_right_side_Handle = AddAnimationComponent (anim_gear, .1, .9, m_axle_right_side,oleo_piston_right_side_Handle);
ANIMATIONCOMPONENT_HANDLE axle_piston_right_Handle = AddAnimationComponent (anim_gear, 0, 1, m_axle_piston_right,axle_right_side_Handle);
AddAnimationComponent (anim_gear, 0, 1, &axle_cylinder_right_side,axle_piston_right_Handle);
AddAnimationComponent (anim_gear, 0, 1, m_wheel_right_rear_right_side,axle_piston_right_Handle);
AddAnimationComponent (anim_gear, 0, 1, m_wheel_right_front_right_side,axle_piston_right_Handle);
AddAnimationComponent (anim_gear, 0, 1, m_wheel_left_rear_right_side,axle_piston_right_Handle);
AddAnimationComponent (anim_gear, 0, 1, m_wheel_left_front_right_side,axle_piston_right_Handle);
   //--end rear gear system right------------------------------------	

//--start rear gear system left------------------------------------	
   ANIMATIONCOMPONENT_HANDLE gear_door_rear_01_leftHandle = AddAnimationComponent (anim_gear, 0, .2, &gear_door_rear_01_left);
   AddAnimationComponent (anim_gear, 0, 0.2, m_gear_door_rear_02_left,gear_door_rear_01_leftHandle);
   AddAnimationComponent (anim_gear, 0, 0.2, &gear_door_rear_03_left_open);
   AddAnimationComponent (anim_gear, 0.8, 1, &gear_door_rear_03_left_close);
ANIMATIONCOMPONENT_HANDLE gear_main_oleo_cylinder_left_Handle = AddAnimationComponent (anim_gear, .1, .9, &gear_main_oleo_cylinder_left); 
ANIMATIONCOMPONENT_HANDLE oleo_piston_left_side_Handle = AddAnimationComponent (anim_gear, .1, .9, m_oleo_piston_left_side,gear_main_oleo_cylinder_left_Handle);
ANIMATIONCOMPONENT_HANDLE axle_left_side_Handle = AddAnimationComponent (anim_gear, .1, .9, m_axle_left_side,oleo_piston_left_side_Handle);
ANIMATIONCOMPONENT_HANDLE axle_piston_left_Handle = AddAnimationComponent (anim_gear, 0, 1, m_axle_piston_left,axle_left_side_Handle);
AddAnimationComponent (anim_gear, 0, 1, &axle_cylinder_left_side,axle_piston_left_Handle);
AddAnimationComponent (anim_gear, 0, 1, m_wheel_right_rear_left_side,axle_piston_left_Handle);
AddAnimationComponent (anim_gear, 0, 1, m_wheel_right_front_left_side,axle_piston_left_Handle);
AddAnimationComponent (anim_gear, 0, 1, m_wheel_left_rear_left_side,axle_piston_left_Handle);
AddAnimationComponent (anim_gear, 0, 1, m_wheel_left_front_left_side,axle_piston_left_Handle);
//--end rear gear system left------------------------------------



    

// ***** turbine reversers  start ************************************************************************************************************

	static UINT reverser_top_back_leftGrp[1] = {GRP_reverser_top_back_left};
	static MGROUP_ROTATE reverser_top_back_left (0, reverser_top_back_leftGrp, 1,
		_V(-1.293505, -1.377853, -16.082842 ), _V(1,0,0) ,  (float)(-90*RAD));

static UINT reverser_top_front_leftGrp[1] = {GRP_reverser_top_front_left};
	static MGROUP_ROTATE reverser_top_front_left (0, reverser_top_front_leftGrp, 1,
		_V(-1.342099, -1.377853, -15.757332 ), _V(1,0,0) ,  (float)(43*RAD));

static UINT reverser_top_inside_leftGrp[1] = {GRP_reverser_top_inside_left};
	static MGROUP_ROTATE reverser_top_inside_left (0, reverser_top_inside_leftGrp, 1,
		_V(-1.277207, -1.356924, -15.974782 ), _V(1,0,0) ,  (float)(21*RAD));




static UINT reverser_bottom_back_leftGrp[1] = {GRP_reverser_bottom_back_left};
	static MGROUP_ROTATE reverser_bottom_back_left (0, reverser_bottom_back_leftGrp, 1,
		_V(-1.293505, -1.377853, -16.082842 ), _V(1,0,0) ,  (float)(90*RAD));

static UINT reverser_bottom_front_leftGrp[1] = {GRP_reverser_bottom_front_left};
	static MGROUP_ROTATE reverser_bottom_front_left (0, reverser_bottom_front_leftGrp, 1,
		_V(-1.342099, -1.377853, -15.757332 ), _V(1,0,0) ,  (float)(-43*RAD));

static UINT reverser_bottom_inside_leftGrp[1] = {GRP_reverser_bottom_inside_left};
	static MGROUP_ROTATE reverser_bottom_inside_left (0, reverser_bottom_inside_leftGrp, 1,
		_V(-1.249676, -1.407732, -15.969517 ), _V(1,0,0) ,  (float)(-21*RAD));

static UINT reverser_top_back_rightGrp[1] = {GRP_reverser_top_back_right};
	static MGROUP_ROTATE reverser_top_back_right (0, reverser_top_back_rightGrp, 1,
		_V(-1.293505, -1.377853, -16.082842 ), _V(1,0,0) ,  (float)(-90*RAD));

static UINT reverser_top_front_rightGrp[1] = {GRP_reverser_top_front_right};
	static MGROUP_ROTATE reverser_top_front_right (0, reverser_top_front_rightGrp, 1,
		_V(-1.342099, -1.377853, -15.757332 ), _V(1,0,0) ,  (float)(43*RAD));

static UINT reverser_top_inside_rightGrp[1] = {GRP_reverser_top_inside_right};
	static MGROUP_ROTATE reverser_top_inside_right (0, reverser_top_inside_rightGrp, 1,
		_V(-1.277207, -1.356924, -15.974782 ), _V(1,0,0) ,  (float)(21*RAD));




static UINT reverser_bottom_back_rightGrp[1] = {GRP_reverser_bottom_back_right};
	static MGROUP_ROTATE reverser_bottom_back_right (0, reverser_bottom_back_rightGrp, 1,
		_V(-1.293505, -1.377853, -16.082842 ), _V(1,0,0) ,  (float)(90*RAD));

static UINT reverser_bottom_front_rightGrp[1] = {GRP_reverser_bottom_front_right};
	static MGROUP_ROTATE reverser_bottom_front_right (0, reverser_bottom_front_rightGrp, 1,
		_V(-1.342099, -1.377853, -15.757332 ), _V(1,0,0) ,  (float)(-43*RAD));

static UINT reverser_bottom_inside_rightGrp[1] = {GRP_reverser_bottom_inside_right};
	static MGROUP_ROTATE reverser_bottom_inside_right (0, reverser_bottom_inside_rightGrp, 1,
		_V(-1.249676, -1.407732, -15.969517 ), _V(1,0,0) ,  (float)(-21*RAD));

anim_reverser = CreateAnimation (0);
// anim left reverser
ANIMATIONCOMPONENT_HANDLE  reverser_top_back_left_Handle = AddAnimationComponent(anim_reverser, 0, 1, &reverser_top_back_left);
AddAnimationComponent (anim_reverser, 0, 1, &reverser_top_front_left, reverser_top_back_left_Handle);
AddAnimationComponent (anim_reverser, 0, 1, &reverser_top_inside_left, reverser_top_back_left_Handle);
ANIMATIONCOMPONENT_HANDLE  reverser_bottom_back_left_Handle = AddAnimationComponent(anim_reverser, 0, 1, &reverser_bottom_back_left);
AddAnimationComponent (anim_reverser, 0, 1, &reverser_bottom_front_left, reverser_bottom_back_left_Handle);
AddAnimationComponent (anim_reverser, 0, 1, &reverser_bottom_inside_left, reverser_bottom_back_left_Handle);

// anim right reverser
ANIMATIONCOMPONENT_HANDLE  reverser_top_back_right_Handle = AddAnimationComponent(anim_reverser, 0, 1, &reverser_top_back_right);
AddAnimationComponent (anim_reverser, 0, 1, &reverser_top_front_right, reverser_top_back_right_Handle);
AddAnimationComponent (anim_reverser, 0, 1, &reverser_top_inside_right, reverser_top_back_right_Handle);
ANIMATIONCOMPONENT_HANDLE  reverser_bottom_back_right_Handle = AddAnimationComponent(anim_reverser, 0, 1, &reverser_bottom_back_right);
AddAnimationComponent (anim_reverser, 0, 1, &reverser_bottom_front_right, reverser_bottom_back_right_Handle);
AddAnimationComponent (anim_reverser, 0, 1, &reverser_bottom_inside_right, reverser_bottom_back_right_Handle);

// ***** turbine reversers  end ************************************************************************************************************
// ***** bay doors start ************************************************************************************************************
// right front 
static UINT bay_door_forward_rightGrp[2] = {GRP_bay_door_forward_right_outside,GRP_bay_door_forward_right_inside};
	static MGROUP_ROTATE bay_door_forward_right (0, bay_door_forward_rightGrp, 2,
		_V(2.058642, 0.663055, 4.975861), _V(-0.007, -0.065, -0.998), (float)(160*RAD));	

anim_bay_door_forward_right = CreateAnimation (0);
AddAnimationComponent (anim_bay_door_forward_right, 0, 1, &bay_door_forward_right);

// left front
static UINT bay_door_forward_leftGrp[2] = {GRP_bay_door_forward_left_outside,GRP_bay_door_forward_left_inside};
	static MGROUP_ROTATE bay_door_forward_left (0, bay_door_forward_leftGrp, 2,
		_V(-2.058642, 0.663055, 4.975861), _V(-0.007, -0.065, -0.998), (float)(-160*RAD));	

anim_bay_door_forward_left = CreateAnimation (0);
AddAnimationComponent (anim_bay_door_forward_left, 0, 1, &bay_door_forward_left);

// right aft 
static UINT bay_door_aft_rightGrp[2] = {GRP_bay_door_aft_right_outside,GRP_bay_door_aft_right_inside};
	static MGROUP_ROTATE bay_door_aft_right (0, bay_door_aft_rightGrp, 2,
		_V(2.058642, 0.663055, 4.975861), _V(-0.007, -0.065, -0.998), (float)(160*RAD));	

anim_bay_door_aft_right = CreateAnimation (0);
AddAnimationComponent (anim_bay_door_aft_right, 0, 1, &bay_door_aft_right);

// left aft
static UINT bay_door_aft_leftGrp[2] = {GRP_bay_door_aft_left_outside,GRP_bay_door_aft_left_inside};
	static MGROUP_ROTATE bay_door_aft_left (0, bay_door_aft_leftGrp, 2,
		_V(-2.058642, 0.663055, 4.975861), _V(-0.007, -0.065, -0.998), (float)(-160*RAD));	

anim_bay_door_aft_left = CreateAnimation (0);
AddAnimationComponent (anim_bay_door_aft_left, 0, 1, &bay_door_aft_left);

// ***** bay doors end ************************************************************************************************************




// ***** Nose cone animation *****
	


    static UINT nose_cone_pin_Grp[1] = {GRP_nose_cone_pin};
	m_nose_cone_pin = new MGROUP_TRANSLATE (0, nose_cone_pin_Grp, 1,
		_V(0,0.091 ,0.517 )  );
    


    static UINT NConeGrp[1] = {GRP_nose_cone};
	static MGROUP_ROTATE NCone (0, NConeGrp, 1,
		_V(0, -1.781074, 13.623077 ), _V(1,0,0), (float)(90*RAD));
	
	
	
	
	anim_nose = CreateAnimation (0);
	ANIMATIONCOMPONENT_HANDLE  nose_cone_pin_Handle = AddAnimationComponent (anim_nose, 0.1, 1, m_nose_cone_pin);
	
	AddAnimationComponent (anim_nose, .3, 1, &NCone,nose_cone_pin_Handle);

//================ Air lock system =======================================
//Air lock tube

    static UINT outside_tube_001Grp[1] = {GRP_outside_tube_001};
	static MGROUP_TRANSLATE outside_tube_001 (0, outside_tube_001Grp, 1,
		_V(0,0,1.31)  );

	static UINT inside_tubeGrp[1] = {GRP_inside_tube};
	m_inside_tube = new MGROUP_TRANSLATE  (0, inside_tubeGrp, 1,
		_V(0,0,0.65)  );

	static UINT outside_tube_002Grp[1] = {GRP_outside_tube_002};
	m_outside_tube_002 = new MGROUP_TRANSLATE  (0, outside_tube_002Grp, 1,
		_V(0,0,.59)  );
	
	
	anim_air_lock_tube = CreateAnimation (0);
    ANIMATIONCOMPONENT_HANDLE  outside_tube_001_Handle = AddAnimationComponent (anim_air_lock_tube, 0, .35, &outside_tube_001);
    ANIMATIONCOMPONENT_HANDLE  inside_tube_Handle = AddAnimationComponent (anim_air_lock_tube, .2, 1, m_inside_tube,outside_tube_001_Handle);
    ANIMATIONCOMPONENT_HANDLE  outside_tube_002_Handle = AddAnimationComponent (anim_air_lock_tube, .2, 1, m_outside_tube_002,inside_tube_Handle);
   


//Air lock outter door

	// ***** Outer airlock animation *****
	
	
	//outer_air_lock_pedal_001 start 
	static UINT outer_air_lock_pedal_001_part_001Grp[1] = {GRP_outer_air_lock_pedal_001_part_001};
	 m_outer_air_lock_pedal_001_part_001 = new MGROUP_ROTATE  (0, outer_air_lock_pedal_001_part_001Grp, 1,
		_V(0.532364, -0.434061, 14.240163), _V(0.809, -0.588, 0.0), (float)(90*RAD));
	
	
	static UINT outer_air_lock_pedal_001_part_002Grp[1] = {GRP_outer_air_lock_pedal_001_part_002};
	 m_outer_air_lock_pedal_001_part_002 = new MGROUP_ROTATE  (0, outer_air_lock_pedal_001_part_002Grp, 1,
		_V(0.266182, -0.627454, 14.250493), _V(0.809, -0.588, 0.0), (float)(-180*RAD)); 
	 
	 static UINT outer_air_lock_pedal_001_part_003Grp[1] = {GRP_outer_air_lock_pedal_001_part_003};
	 m_outer_air_lock_pedal_001_part_003 = new MGROUP_ROTATE  (0, outer_air_lock_pedal_001_part_003Grp, 1,
		_V(0.174218, -0.72415, 14.240836 ), _V(0.809, -0.588, 0.0), (float)(180*RAD)); 
	 
	 
	 anim_olock = CreateAnimation (0);
	
	 ANIMATIONCOMPONENT_HANDLE  outer_air_lock_pedal_001_part_001_Handle = AddAnimationComponent 
		(anim_olock, .05, 1, m_outer_air_lock_pedal_001_part_001,outside_tube_002_Handle);
	
	ANIMATIONCOMPONENT_HANDLE  outer_air_lock_pedal_001_part_002_Handle = AddAnimationComponent 
		(anim_olock, 0, 1, m_outer_air_lock_pedal_001_part_002,outer_air_lock_pedal_001_part_001_Handle);

   AddAnimationComponent(anim_olock, 0, 1, m_outer_air_lock_pedal_001_part_003,outer_air_lock_pedal_001_part_002_Handle);
//outer_air_lock_pedal_001 end



	//outer_air_lock_pedal_002 start 
	static UINT outer_air_lock_pedal_002_part_001Grp[1] = {GRP_outer_air_lock_pedal_002_part_001};
	 m_outer_air_lock_pedal_002_part_001 = new MGROUP_ROTATE  (0, outer_air_lock_pedal_002_part_001Grp, 1,
		_V(0.203345, -0.195015, 14.240491), _V(1,0,0), (float)(90*RAD));
	
	
	static UINT outer_air_lock_pedal_002_part_002Grp[1] = {GRP_outer_air_lock_pedal_002_part_002};
	static MGROUP_ROTATE outer_air_lock_pedal_002_part_002 (0, outer_air_lock_pedal_002_part_002Grp, 1,
		_V(0.101673, -0.507931, 14.250493), _V(1,0,0), (float)(-180*RAD)); 
	 	 
	
	 ANIMATIONCOMPONENT_HANDLE  outer_air_lock_pedal_002_part_001_Handle = AddAnimationComponent 
		(anim_olock, .05, 1, m_outer_air_lock_pedal_002_part_001,outside_tube_002_Handle);
	
	 AddAnimationComponent (anim_olock, 0, 1, &outer_air_lock_pedal_002_part_002,outer_air_lock_pedal_002_part_001_Handle);

   
 //outer_air_lock_pedal_002 end

 //outer_air_lock_pedal_003 start++++++++++++++++++++++++++++++++ 
	static UINT outer_air_lock_pedal_003_part_001Grp[1] = {GRP_outer_air_lock_pedal_003_part_001};
	 m_outer_air_lock_pedal_003_part_001 = new MGROUP_ROTATE  (0, outer_air_lock_pedal_003_part_001Grp, 1,
		_V(-0.532364, -0.434061, 14.240493), _V(0.809, 0.588, 0.0), (float)(90*RAD));
	
	
	static UINT outer_air_lock_pedal_003_part_002Grp[1] = {GRP_outer_air_lock_pedal_003_part_002};
	static MGROUP_ROTATE outer_air_lock_pedal_003_part_002 (0, outer_air_lock_pedal_003_part_002Grp, 1,
		_V(-0.266182, -0.627454, 14.250495), _V(0.809, 0.588, 0.0), (float)(-180*RAD)); 
	 	 
	
	 ANIMATIONCOMPONENT_HANDLE  outer_air_lock_pedal_003_part_001_Handle = AddAnimationComponent 
		(anim_olock, .05, 1, m_outer_air_lock_pedal_003_part_001,outside_tube_002_Handle);
	
	 AddAnimationComponent (anim_olock, 0, 1, &outer_air_lock_pedal_003_part_002,outer_air_lock_pedal_003_part_001_Handle);

   
 //outer_air_lock_pedal_003 end--------------------------------

//outer_air_lock_pedal_004 start++++++++++++++++++++++++++++++++ 
	static UINT outer_air_lock_pedal_004_part_001Grp[1] = {GRP_outer_air_lock_pedal_004_part_001};
	 m_outer_air_lock_pedal_004_part_001 = new MGROUP_ROTATE  (0, outer_air_lock_pedal_004_part_001Grp, 1,
		_V(-0.658038, -0.820846, 14.240493), _V(0.309, 0.951, 0.0), (float)(90*RAD));
	
	
	static UINT outer_air_lock_pedal_004_part_002Grp[1] = {GRP_outer_air_lock_pedal_004_part_002};
	static MGROUP_ROTATE outer_air_lock_pedal_004_part_002 (0, outer_air_lock_pedal_004_part_002Grp, 1,
		_V(-0.329019, -0.820846, 14.250491), _V(0.309, 0.951, 0.0), (float)(-180*RAD)); 
	 	 
	
	 ANIMATIONCOMPONENT_HANDLE  outer_air_lock_pedal_004_part_001_Handle = AddAnimationComponent 
		(anim_olock, .05, 1, m_outer_air_lock_pedal_004_part_001,outside_tube_002_Handle);
	
	 AddAnimationComponent (anim_olock, 0, 1, &outer_air_lock_pedal_004_part_002,outer_air_lock_pedal_004_part_001_Handle);

   
 //outer_air_lock_pedal_004 end--------------------------------

//outer_air_lock_pedal_005 start++++++++++++++++++++++++++++++++ 
	static UINT outer_air_lock_pedal_005_part_001Grp[1] = {GRP_outer_air_lock_pedal_005_part_001};
	 m_outer_air_lock_pedal_005_part_001 = new MGROUP_ROTATE  (0, outer_air_lock_pedal_005_part_001Grp, 1,
		_V(-0.658038, -0.820846, 14.240493), _V(-0.309, 0.951, 0.0), (float)(90*RAD));
	
	
	static UINT outer_air_lock_pedal_005_part_002Grp[1] = {GRP_outer_air_lock_pedal_005_part_002};
	static MGROUP_ROTATE outer_air_lock_pedal_005_part_002 (0, outer_air_lock_pedal_005_part_002Grp, 1,
		_V(-0.329019, -0.820846, 14.250491), _V(-0.309, 0.951, 0.0), (float)(-180*RAD)); 
	 	 
	
	 ANIMATIONCOMPONENT_HANDLE  outer_air_lock_pedal_005_part_001_Handle = AddAnimationComponent 
		(anim_olock, .05, 1, m_outer_air_lock_pedal_005_part_001,outside_tube_002_Handle);
	
	 AddAnimationComponent (anim_olock, 0, 1, &outer_air_lock_pedal_005_part_002,outer_air_lock_pedal_005_part_001_Handle);

   
 //outer_air_lock_pedal_005 end--------------------------------

 //outer_air_lock_pedal_006 start++++++++++++++++++++++++++++++++ 
	static UINT outer_air_lock_pedal_006_part_001Grp[1] = {GRP_outer_air_lock_pedal_006_part_001};
	 m_outer_air_lock_pedal_006_part_001 = new MGROUP_ROTATE  (0, outer_air_lock_pedal_006_part_001Grp, 1,
		_V(-0.203345, -1.446678, 14.240491), _V(-0.809, 0.588, 0.0), (float)(90*RAD));
	
	
	static UINT outer_air_lock_pedal_006_part_002Grp[1] = {GRP_outer_air_lock_pedal_006_part_002};
	static MGROUP_ROTATE outer_air_lock_pedal_006_part_002 (0, outer_air_lock_pedal_006_part_002Grp, 1,
		_V(-0.101673, -1.133762, 14.250493), _V(-0.809, 0.588, 0.0), (float)(-180*RAD)); 
	 	 
	
	 ANIMATIONCOMPONENT_HANDLE  outer_air_lock_pedal_006_part_001_Handle = AddAnimationComponent 
		(anim_olock, .05, 1, m_outer_air_lock_pedal_006_part_001,outside_tube_002_Handle);
	
	 AddAnimationComponent (anim_olock, 0, 1, &outer_air_lock_pedal_006_part_002,outer_air_lock_pedal_006_part_001_Handle);

   
 //outer_air_lock_pedal_006 end--------------------------------

//outer_air_lock_pedal_007 start++++++++++++++++++++++++++++++++ 
	static UINT outer_air_lock_pedal_007_part_001Grp[1] = {GRP_outer_air_lock_pedal_007_part_001};
	 m_outer_air_lock_pedal_007_part_001 = new MGROUP_ROTATE  (0, outer_air_lock_pedal_007_part_001Grp, 1,
		_V(0.203345, -1.446678, 14.240491), _V(-1,0,0), (float)(90*RAD));
	
	
	static UINT outer_air_lock_pedal_007_part_002Grp[1] = {GRP_outer_air_lock_pedal_007_part_002};
	static MGROUP_ROTATE outer_air_lock_pedal_007_part_002 (0, outer_air_lock_pedal_007_part_002Grp, 1,
		_V(0.101673, -1.133762, 14.250493), _V(-1,0,0), (float)(-180*RAD)); 
	 	 
	
	 ANIMATIONCOMPONENT_HANDLE  outer_air_lock_pedal_007_part_001_Handle = AddAnimationComponent 
		(anim_olock, .05, 1, m_outer_air_lock_pedal_007_part_001,outside_tube_002_Handle);
	
	 AddAnimationComponent (anim_olock, 0, 1, &outer_air_lock_pedal_007_part_002,outer_air_lock_pedal_007_part_001_Handle);

   
 //outer_air_lock_pedal_007 end--------------------------------

//outer_air_lock_pedal_008 start++++++++++++++++++++++++++++++++ 
	static UINT outer_air_lock_pedal_008_part_001Grp[1] = {GRP_outer_air_lock_pedal_008_part_001};
	 m_outer_air_lock_pedal_008_part_001 = new MGROUP_ROTATE  (0, outer_air_lock_pedal_008_part_001Grp, 1,
		_V(0.532364, -1.207631, 14.240493), _V(0.809, 0.588, -0.001), (float)(-90*RAD));
	
	
	static UINT outer_air_lock_pedal_008_part_002Grp[1] = {GRP_outer_air_lock_pedal_008_part_002};
	static MGROUP_ROTATE outer_air_lock_pedal_008_part_002 (0, outer_air_lock_pedal_008_part_002Grp, 1,
		_V(0.101673, -1.133762, 14.250493), _V(0.809, 0.588, -0.001), (float)(180*RAD)); 
	 	 
	
	 ANIMATIONCOMPONENT_HANDLE  outer_air_lock_pedal_008_part_001_Handle = AddAnimationComponent 
		(anim_olock, .05, 1, m_outer_air_lock_pedal_008_part_001,outside_tube_002_Handle);
	
	 AddAnimationComponent (anim_olock, 0, 1, &outer_air_lock_pedal_008_part_002,outer_air_lock_pedal_008_part_001_Handle);

   
 //outer_air_lock_pedal_008 end--------------------------------


//outer_air_lock_pedal_009 start++++++++++++++++++++++++++++++++ 
	static UINT outer_air_lock_pedal_009_part_001Grp[1] = {GRP_outer_air_lock_pedal_009_part_001};
	 m_outer_air_lock_pedal_009_part_001 = new MGROUP_ROTATE  (0, outer_air_lock_pedal_009_part_001Grp, 1,
		_V(0.532364, -1.207631, 14.240493), _V(-0.309, -0.951, 0.0), (float)(90*RAD));
	
	
	static UINT outer_air_lock_pedal_009_part_002Grp[1] = {GRP_outer_air_lock_pedal_009_part_002};
	static MGROUP_ROTATE outer_air_lock_pedal_009_part_002 (0, outer_air_lock_pedal_009_part_002Grp, 1,
		_V(0.329019, -0.820846, 14.250495), _V(-0.309, -0.951, 0.0), (float)(-180*RAD)); 
	 	 
	
	 ANIMATIONCOMPONENT_HANDLE  outer_air_lock_pedal_009_part_001_Handle = AddAnimationComponent 
		(anim_olock, .05, 1, m_outer_air_lock_pedal_009_part_001,outside_tube_002_Handle);
	
	 AddAnimationComponent (anim_olock, 0, 1, &outer_air_lock_pedal_009_part_002,outer_air_lock_pedal_009_part_001_Handle);

   
 //outer_air_lock_pedal_009 end--------------------------------

//outer_air_lock_pedal_010 start++++++++++++++++++++++++++++++++ 
	static UINT outer_air_lock_pedal_010_part_001Grp[1] = {GRP_outer_air_lock_pedal_010_part_001};
	 m_outer_air_lock_pedal_010_part_001 = new MGROUP_ROTATE  (0, outer_air_lock_pedal_010_part_001Grp, 1,
		_V(0.658038, -0.820846, 14.240493), _V(0.309, -0.951, 0.001), (float)(90*RAD));
	
	
	static UINT outer_air_lock_pedal_010_part_002Grp[1] = {GRP_outer_air_lock_pedal_010_part_002};
	static MGROUP_ROTATE outer_air_lock_pedal_010_part_002 (0, outer_air_lock_pedal_010_part_002Grp, 1,
		_V(0.329019, -0.820846, 14.250495), _V(0.309, -0.951, 0.001), (float)(-180*RAD)); 
	 	 
	
	 ANIMATIONCOMPONENT_HANDLE  outer_air_lock_pedal_010_part_001_Handle = AddAnimationComponent 
		(anim_olock, .05, 1, m_outer_air_lock_pedal_010_part_001,outside_tube_002_Handle);
	
	 AddAnimationComponent (anim_olock, 0, 1, &outer_air_lock_pedal_010_part_002,outer_air_lock_pedal_010_part_001_Handle);

   
 //outer_air_lock_pedal_010 end--------------------------------

//----------------------------------Air lock outer door end ----------------------------------------------------------------

//Air lock inner door

	// ***** inner airlock animation *****
	
	
	//inner_air_lock_pedal_001 start 
	static UINT inner_air_lock_pedal_001_part_001Grp[1] = {GRP_inner_air_lock_pedal_001_part_001};
	 m_inner_air_lock_pedal_001_part_001 = new MGROUP_ROTATE  (0, inner_air_lock_pedal_001_part_001Grp, 1,
		_V(0.532364, -0.434061, 12.937775), _V(0.809, -0.588, 0.0), (float)(-90*RAD));
	
	
	static UINT inner_air_lock_pedal_001_part_002Grp[1] = {GRP_inner_air_lock_pedal_001_part_002};
	 m_inner_air_lock_pedal_001_part_002 = new MGROUP_ROTATE  (0, inner_air_lock_pedal_001_part_002Grp, 1,
		_V(0.266182, -0.627454, 12.937775), _V(0.809, -0.588, 0.0), (float)(180*RAD)); 
	 
	 static UINT inner_air_lock_pedal_001_part_003Grp[1] = {GRP_inner_air_lock_pedal_001_part_003};
	 m_inner_air_lock_pedal_001_part_003 = new MGROUP_ROTATE  (0, inner_air_lock_pedal_001_part_003Grp, 1,
		_V(0.174218, -0.72415, 12.937775 ), _V(0.809, -0.588, 0.0), (float)(-180*RAD)); 
	 
	 
	 anim_ilock = CreateAnimation (0);
	
	 ANIMATIONCOMPONENT_HANDLE  inner_air_lock_pedal_001_part_001_Handle = AddAnimationComponent 
		(anim_ilock, .05, 1, m_inner_air_lock_pedal_001_part_001,outside_tube_001_Handle);
	
	ANIMATIONCOMPONENT_HANDLE  inner_air_lock_pedal_001_part_002_Handle = AddAnimationComponent 
		(anim_ilock, 0, 1, m_inner_air_lock_pedal_001_part_002,inner_air_lock_pedal_001_part_001_Handle);

   AddAnimationComponent(anim_ilock, 0, 1, m_inner_air_lock_pedal_001_part_003,inner_air_lock_pedal_001_part_002_Handle);
//inner_air_lock_pedal_001 end



	//inner_air_lock_pedal_002 start 
	static UINT inner_air_lock_pedal_002_part_001Grp[1] = {GRP_inner_air_lock_pedal_002_part_001};
	 m_inner_air_lock_pedal_002_part_001 = new MGROUP_ROTATE  (0, inner_air_lock_pedal_002_part_001Grp, 1,
		_V(0.203345, -0.195015, 12.937775), _V(1,0,0), (float)(-90*RAD));
	
	
	static UINT inner_air_lock_pedal_002_part_002Grp[1] = {GRP_inner_air_lock_pedal_002_part_002};
	static MGROUP_ROTATE inner_air_lock_pedal_002_part_002 (0, inner_air_lock_pedal_002_part_002Grp, 1,
		_V(0.101673, -0.507931, 12.937775), _V(1,0,0), (float)(180*RAD)); 
	 	 
	
	 ANIMATIONCOMPONENT_HANDLE  inner_air_lock_pedal_002_part_001_Handle = AddAnimationComponent 
		(anim_ilock, .05, 1, m_inner_air_lock_pedal_002_part_001,outside_tube_001_Handle);
	
	 AddAnimationComponent (anim_ilock, 0, 1, &inner_air_lock_pedal_002_part_002,inner_air_lock_pedal_002_part_001_Handle);

   
 //inner_air_lock_pedal_002 end

 //inner_air_lock_pedal_003 start++++++++++++++++++++++++++++++++ 
	static UINT inner_air_lock_pedal_003_part_001Grp[1] = {GRP_inner_air_lock_pedal_003_part_001};
	 m_inner_air_lock_pedal_003_part_001 = new MGROUP_ROTATE  (0, inner_air_lock_pedal_003_part_001Grp, 1,
		_V(-0.532364, -0.434061, 12.937775), _V(0.809, 0.588, 0.0), (float)(-90*RAD));
	
	
	static UINT inner_air_lock_pedal_003_part_002Grp[1] = {GRP_inner_air_lock_pedal_003_part_002};
	static MGROUP_ROTATE inner_air_lock_pedal_003_part_002 (0, inner_air_lock_pedal_003_part_002Grp, 1,
		_V(-0.266182, -0.627454, 12.937775), _V(0.809, 0.588, 0.0), (float)(180*RAD)); 
	 	 
	
	 ANIMATIONCOMPONENT_HANDLE  inner_air_lock_pedal_003_part_001_Handle = AddAnimationComponent 
		(anim_ilock, .05, 1, m_inner_air_lock_pedal_003_part_001,outside_tube_001_Handle);
	
	 AddAnimationComponent (anim_ilock, 0, 1, &inner_air_lock_pedal_003_part_002,inner_air_lock_pedal_003_part_001_Handle);

   
 //inner_air_lock_pedal_003 end--------------------------------

//inner_air_lock_pedal_004 start++++++++++++++++++++++++++++++++ 
	static UINT inner_air_lock_pedal_004_part_001Grp[1] = {GRP_inner_air_lock_pedal_004_part_001};
	 m_inner_air_lock_pedal_004_part_001 = new MGROUP_ROTATE  (0, inner_air_lock_pedal_004_part_001Grp, 1,
		_V(-0.658038, -0.820846, 12.937775), _V(0.309, 0.951, 0.0), (float)(-90*RAD));
	
	
	static UINT inner_air_lock_pedal_004_part_002Grp[1] = {GRP_inner_air_lock_pedal_004_part_002};
	static MGROUP_ROTATE inner_air_lock_pedal_004_part_002 (0, inner_air_lock_pedal_004_part_002Grp, 1,
		_V(-0.329019, -0.820846, 12.937775), _V(0.309, 0.951, 0.0), (float)(180*RAD)); 
	 	 
	
	 ANIMATIONCOMPONENT_HANDLE  inner_air_lock_pedal_004_part_001_Handle = AddAnimationComponent 
		(anim_ilock, .05, 1, m_inner_air_lock_pedal_004_part_001,outside_tube_001_Handle);
	
	 AddAnimationComponent (anim_ilock, 0, 1, &inner_air_lock_pedal_004_part_002,inner_air_lock_pedal_004_part_001_Handle);

   
 //inner_air_lock_pedal_004 end--------------------------------

//inner_air_lock_pedal_005 start++++++++++++++++++++++++++++++++ 
	static UINT inner_air_lock_pedal_005_part_001Grp[1] = {GRP_inner_air_lock_pedal_005_part_001};
	 m_inner_air_lock_pedal_005_part_001 = new MGROUP_ROTATE  (0, inner_air_lock_pedal_005_part_001Grp, 1,
		_V(-0.658038, -0.820846, 12.937775), _V(-0.309, 0.951, 0.0), (float)(-90*RAD));
	
	
	static UINT inner_air_lock_pedal_005_part_002Grp[1] = {GRP_inner_air_lock_pedal_005_part_002};
	static MGROUP_ROTATE inner_air_lock_pedal_005_part_002 (0, inner_air_lock_pedal_005_part_002Grp, 1,
		_V(-0.329019, -0.820846, 12.937775), _V(-0.309, 0.951, 0.0), (float)(180*RAD)); 
	 	 
	
	 ANIMATIONCOMPONENT_HANDLE  inner_air_lock_pedal_005_part_001_Handle = AddAnimationComponent 
		(anim_ilock, .05, 1, m_inner_air_lock_pedal_005_part_001,outside_tube_001_Handle);
	
	 AddAnimationComponent (anim_ilock, 0, 1, &inner_air_lock_pedal_005_part_002,inner_air_lock_pedal_005_part_001_Handle);

   
 //inner_air_lock_pedal_005 end--------------------------------

 //inner_air_lock_pedal_006 start++++++++++++++++++++++++++++++++ 
	static UINT inner_air_lock_pedal_006_part_001Grp[1] = {GRP_inner_air_lock_pedal_006_part_001};
	 m_inner_air_lock_pedal_006_part_001 = new MGROUP_ROTATE  (0, inner_air_lock_pedal_006_part_001Grp, 1,
		_V(-0.203345, -1.446678, 12.937775), _V(-0.809, 0.588, 0.0), (float)(-90*RAD));
	
	
	static UINT inner_air_lock_pedal_006_part_002Grp[1] = {GRP_inner_air_lock_pedal_006_part_002};
	static MGROUP_ROTATE inner_air_lock_pedal_006_part_002 (0, inner_air_lock_pedal_006_part_002Grp, 1,
		_V(-0.101673, -1.133762, 12.937775), _V(-0.809, 0.588, 0.0), (float)(180*RAD)); 
	 	 
	
	 ANIMATIONCOMPONENT_HANDLE  inner_air_lock_pedal_006_part_001_Handle = AddAnimationComponent 
		(anim_ilock, .05, 1, m_inner_air_lock_pedal_006_part_001,outside_tube_001_Handle);
	
	 AddAnimationComponent (anim_ilock, 0, 1, &inner_air_lock_pedal_006_part_002,inner_air_lock_pedal_006_part_001_Handle);

   
 //inner_air_lock_pedal_006 end--------------------------------

//inner_air_lock_pedal_007 start++++++++++++++++++++++++++++++++ 
	static UINT inner_air_lock_pedal_007_part_001Grp[1] = {GRP_inner_air_lock_pedal_007_part_001};
	 m_inner_air_lock_pedal_007_part_001 = new MGROUP_ROTATE  (0, inner_air_lock_pedal_007_part_001Grp, 1,
		_V(0.203345, -1.446678, 12.937775), _V(-1,0,0), (float)(-90*RAD));
	
	
	static UINT inner_air_lock_pedal_007_part_002Grp[1] = {GRP_inner_air_lock_pedal_007_part_002};
	static MGROUP_ROTATE inner_air_lock_pedal_007_part_002 (0, inner_air_lock_pedal_007_part_002Grp, 1,
		_V(0.101673, -1.133762, 12.937775), _V(-1,0,0), (float)(180*RAD)); 
	 	 
	
	 ANIMATIONCOMPONENT_HANDLE  inner_air_lock_pedal_007_part_001_Handle = AddAnimationComponent 
		(anim_ilock, .05, 1, m_inner_air_lock_pedal_007_part_001,outside_tube_001_Handle);
	
	 AddAnimationComponent (anim_ilock, 0, 1, &inner_air_lock_pedal_007_part_002,inner_air_lock_pedal_007_part_001_Handle);

   
 //inner_air_lock_pedal_007 end--------------------------------

//inner_air_lock_pedal_008 start++++++++++++++++++++++++++++++++ 
	static UINT inner_air_lock_pedal_008_part_001Grp[1] = {GRP_inner_air_lock_pedal_008_part_001};
	 m_inner_air_lock_pedal_008_part_001 = new MGROUP_ROTATE  (0, inner_air_lock_pedal_008_part_001Grp, 1,
		_V(0.532364, -1.207631, 12.937775), _V(0.809, 0.588, -0.001), (float)(-90*RAD));
	
	
	static UINT inner_air_lock_pedal_008_part_002Grp[1] = {GRP_inner_air_lock_pedal_008_part_002};
	static MGROUP_ROTATE inner_air_lock_pedal_008_part_002 (0, inner_air_lock_pedal_008_part_002Grp, 1,
		_V(0.101673, -1.133762, 12.937775), _V(0.809, 0.588, -0.001), (float)(180*RAD)); 
	 	 
	
	 ANIMATIONCOMPONENT_HANDLE  inner_air_lock_pedal_008_part_001_Handle = AddAnimationComponent 
		(anim_ilock, .05, 1, m_inner_air_lock_pedal_008_part_001,outside_tube_001_Handle);
	
	 AddAnimationComponent (anim_ilock, 0, 1, &inner_air_lock_pedal_008_part_002,inner_air_lock_pedal_008_part_001_Handle);

   
 //inner_air_lock_pedal_008 end--------------------------------


//inner_air_lock_pedal_009 start++++++++++++++++++++++++++++++++ 
	static UINT inner_air_lock_pedal_009_part_001Grp[1] = {GRP_inner_air_lock_pedal_009_part_001};
	 m_inner_air_lock_pedal_009_part_001 = new MGROUP_ROTATE  (0, inner_air_lock_pedal_009_part_001Grp, 1,
		_V(0.532364, -1.207631, 12.937775), _V(-0.309, -0.951, 0.0), (float)(-90*RAD));
	
	
	static UINT inner_air_lock_pedal_009_part_002Grp[1] = {GRP_inner_air_lock_pedal_009_part_002};
	static MGROUP_ROTATE inner_air_lock_pedal_009_part_002 (0, inner_air_lock_pedal_009_part_002Grp, 1,
		_V(0.329019, -0.820846, 12.937775), _V(-0.309, -0.951, 0.0), (float)(180*RAD)); 
	 	 
	
	 ANIMATIONCOMPONENT_HANDLE  inner_air_lock_pedal_009_part_001_Handle = AddAnimationComponent 
		(anim_ilock, .05, 1, m_inner_air_lock_pedal_009_part_001,outside_tube_001_Handle);
	
	 AddAnimationComponent (anim_ilock, 0, 1, &inner_air_lock_pedal_009_part_002,inner_air_lock_pedal_009_part_001_Handle);

   
 //inner_air_lock_pedal_009 end--------------------------------

//inner_air_lock_pedal_010 start++++++++++++++++++++++++++++++++ 
	static UINT inner_air_lock_pedal_010_part_001Grp[1] = {GRP_inner_air_lock_pedal_010_part_001};
	 m_inner_air_lock_pedal_010_part_001 = new MGROUP_ROTATE  (0, inner_air_lock_pedal_010_part_001Grp, 1,
		_V(0.658038, -0.820846, 12.937775), _V(0.309, -0.951, 0.001), (float)(-90*RAD));
	
	
	static UINT inner_air_lock_pedal_010_part_002Grp[1] = {GRP_inner_air_lock_pedal_010_part_002};
	static MGROUP_ROTATE inner_air_lock_pedal_010_part_002 (0, inner_air_lock_pedal_010_part_002Grp, 1,
		_V(0.329019, -0.820846, 12.937775), _V(0.309, -0.951, 0.001), (float)(180*RAD)); 
	 	 
	
	 ANIMATIONCOMPONENT_HANDLE  inner_air_lock_pedal_010_part_001_Handle = AddAnimationComponent 
		(anim_ilock, .05, 1, m_inner_air_lock_pedal_010_part_001,outside_tube_001_Handle);
	
	 AddAnimationComponent (anim_ilock, 0, 1, &inner_air_lock_pedal_010_part_002,inner_air_lock_pedal_010_part_001_Handle);

   
 //inner_air_lock_pedal_010 end--------------------------------



//------------------------------ Air lock inner door end --------------------------------------------------------------------------

}


